package br.com.it4.framework.util.resource;

import java.util.Locale;

/**
 * Factory de recursos utilizado nas mensagens do sistema.
 * 
 * @author Mozart Silva (mozart.vsilva@gmail.com)
 * 
 */
public class MessageResourceFactory {

    /**
     * Construtor privado.
     */
    private MessageResourceFactory() {
        super();
    }

    /**
     * Cria um {@link MessageResource}
     * 
     * @param bundle
     *            o nome do recurso a ser lido.
     * @param locale
     *            O locale.
     * @param loader
     *            O class loader o qual irá carregar os recursos.
     * @return O MessageResource criado.
     */
    public static MessageResource createMessageResource(String bundle, Locale locale, ClassLoader loader) {
        return new MessageResource(bundle, locale, loader);
    }

    /**
     * Cria um {@link MessageResource}
     * 
     * @param bundle
     *            o nome do recurso a ser lido.
     * @return O MessageResource criado.
     */
    public static MessageResource createMessageResource(String bundle) {
        return new MessageResource(bundle);
    }

    /**
     * Cria um {@link MessageResource}
     * 
     * @param bundle
     *            o nome do recurso a ser lido.
     * @param locale
     *            O locale.
     * @return O MessageResource criado.
     */
    public static MessageResource createMessageResource(String bundle, Locale locale) {
        return new MessageResource(bundle, locale, null);
    }

    /**
     * Cria um {@link MessageResource}
     * 
     * @param bundle
     *            o nome do recurso a ser lido.
     * @param loader
     *            O class loader o qual irá carregar os recursos.
     * @return O MessageResource criado.
     */
    public static MessageResource createMessageResource(String bundle, ClassLoader loader) {
        return new MessageResource(bundle, null, loader);
    }

}
